f(x,p) 
 if (x>0) goto recursion;
 return 1;
 recursion: 
 p[0] = 2*f(x+(-1),p);
 return p[0];
end;
